Virtual flight deck

ABSTRACT

A method is present for presenting a flight deck. A model of the flight deck is identified having a number of locations for a number of displays. Aircraft data is obtained. A number of panels is generated from the aircraft data. A display of the flight deck is generated containing the number of panels in the number of locations to form a presentation of the flight deck.

BACKGROUND INFORMATION

1. Field

The present disclosure relates generally to an improved data processingsystem and, in particular, to a method and apparatus for simulating aflight deck. Still more particularly, the present disclosure relates toa computer implemented method, apparatus, and computer usable programcode for simulating a flight deck from a model of the flight deck.

2. Background

A flight deck is an area in an aircraft from which a pilot and othercrew members control the aircraft. A flight deck is typically near thefront of the aircraft and may also be referred to as a cockpit. A flightdeck contains flight instruments, controls, and windows through whichpilots may view the external environment.

The flight instruments in a flight deck may include various instrumentssuch as, for example, a mode control panel, a primary flight display, anavigation display, a flight management system and control unit, andother suitable instruments. Further, the controls operated by anaircraft may include a control column, a side stick, switches, and othercontrols. The configuration of different displays, windows, seats, andother components of a flight deck are complex.

When new designs are created for a flight deck, pilots, engineers, andother individuals may evaluate these designs before they are implementedinto an aircraft or creating simulators. These simulators are a systemthat simulates the experience of an aircraft using a particular flightdeck design. Flight simulators may be platforms that provide anenvironment to train pilots prior to those pilots flying an actualaircraft with the same type of flight deck.

Currently, initial evaluations of flight deck designs involve viewing aprototype. These prototypes are typically built out of plywood and/orfoam core. These prototypes may be expensive and may be time-consumingto build. As a result, the evaluation of flight deck designs may belimited or slowed down by the cost and time needed to create prototypesfor review.

Therefore, it would be advantageous to have a method, apparatus, andcomputer program code to simulate a flight deck in a manner thatovercomes the problems described above.

SUMMARY

In one advantageous embodiment, a method is present for presenting aflight deck. A model of the flight deck is identified having a number oflocations for a number of displays. Aircraft data is obtained. A numberof panels are generated from the aircraft data. A display of the flightdeck is generated containing the number of panels in the number oflocations to form a presentation of the flight deck.

In another advantageous embodiment, a data processing system comprises abus, a communications unit connected to the bus, a storage deviceconnected to the bus, and a processor unit connected to the bus. Thestorage device includes program code. The processor unit executes theprogram code to identify a model of a flight deck having a number oflocations for a number of displays. The processor unit obtains aircraftdata and generates a number of panels from the aircraft data. Theprocessor unit generates a display of the flight deck containing thenumber of panels in the number of locations to form a presentation ofthe flight deck.

In yet another advantageous embodiment, a computer program product forpresenting a flight deck comprises a computer recordable storage mediumand program code stored on the computer recordable storage medium.Program code is present for identifying a model of the flight deckhaving a number of locations for a number of displays. Program code ispresent for obtaining aircraft data and generating a number of panelsfrom the aircraft data. Program code is also present for generating adisplay of the flight deck containing the number of panels in the numberof locations to form a presentation of the flight deck.

The features, functions, and advantages can be achieved independently invarious embodiments of the present disclosure or may be combined in yetother embodiments in which further details can be seen with reference tothe following description and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the advantageousembodiments are set forth in the appended claims. The advantageousembodiments, however, as well as a preferred mode of use, furtherobjectives and advantages thereof, will best be understood by referenceto the following detailed description of an advantageous embodiment ofthe present disclosure when read in conjunction with the accompanyingdrawings, wherein:

FIG. 1 is a diagram of a data processing environment in which theadvantageous embodiments of the present invention may be implemented;

FIG. 2 is a diagram of a data processing system in accordance with anillustrative embodiment;

FIG. 3 is a diagram of a virtual flight deck environment in accordancewith an advantageous embodiment;

FIG. 4 is a diagram illustrating a virtual flight deck in accordancewith an advantageous embodiment;

FIG. 5 is a diagram illustrating an example of a model in accordancewith an advantageous embodiment;

FIG. 6 is a diagram illustrating a display application in accordancewith an advantageous embodiment;

FIG. 7 is a diagram of a virtual flight deck environment in accordancewith an advantageous embodiment;

FIG. 8 is a diagram illustrating assignment of panels in a virtualflight deck in accordance with an advantageous embodiment;

FIG. 9 is a diagram illustrating a user interface for assigning panelsto locations in a flight deck in accordance with an advantageousembodiment;

FIG. 10 is a flowchart of a process for presenting a virtual flight deckin accordance with an advantageous embodiment; and

FIG. 11 is a flowchart of a process for generating a virtual flight deckin accordance with an advantageous embodiment.

DETAILED DESCRIPTION

With reference now to the figures and, in particular, with reference toFIGS. 1-2, exemplary diagrams of data processing environments areprovided in which the advantageous embodiments of the present inventionmay be implemented. It should be appreciated that FIGS. 1-2 are onlyexemplary and are not intended to assert or imply any limitation withregard to the environments in which different embodiments may beimplemented. Many modifications to the depicted environments may bemade.

With reference now to FIG. 1, a pictorial representation of a network ofdata processing systems is depicted in which the advantageousembodiments of the present invention may be implemented. Network dataprocessing system 100 is a network of computers in which embodiments maybe implemented. Network data processing system 100 contains network 102,which is the medium used to provide communications links between variousdevices and computers connected together within network data processingsystem 100. Network 102 may include connections such as wire, wirelesscommunication links, or fiber optic cables.

In the depicted example, server 104 and server 106 connect to network102 along with storage unit 108. In addition, clients 110, 112, and 114connect to network 102. Clients 110, 112, and 114 may be, for example,personal computers or network computers. In the depicted example, server104 provides data such as boot files, operating system images, andapplications to clients 110, 112, and 114. Clients 110, 112, and 114 areclients to server 104 in this example. Aircraft 116 also is a clientthat may exchange information with clients 110, 112, and 114. Aircraft116 also may exchange information with servers 104 and 106. Aircraft 116may exchange data with different computers through a wirelesscommunications link while in-flight or any other type of communicationslink while on the ground.

In these examples, server 104, server 106, client 110, client 112, andclient 114 may be computers. In different advantageous embodiments,various computers within network data processing system 100 may be usedto provide a presentation of a virtual flight deck. For example, server104 may execute processes to generate a virtual flight deck. In otheradvantageous embodiments, client 112 may execute processes to generate avirtual flight deck. In yet other advantageous embodiments, multiplecomputers or data processing systems within network data processingsystem 100 may be used to generate the virtual flight deck presentation.Network data processing system 100 may include additional servers,clients, and other devices not shown.

In the depicted example, network data processing system 100 is theInternet with network 102 representing a worldwide collection ofnetworks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. Of course, network data processing system 100 also maybe implemented as a number of different types of networks such as, forexample, an intranet, a local area network (LAN), or a wide area network(WAN). FIG. 1 is intended as an example and not as an architecturallimitation for different embodiments.

Turning now to FIG. 2, a diagram of a data processing system is depictedin accordance with an illustrative embodiment. Data processing system200 is an example of a data processing system that may be used toimplement servers and clients, such as server 104 and client 110 inFIG. 1. Further, data processing system 200 is an example of a dataprocessing system that may be found in aircraft 116 in FIG. 1.

In this illustrative example, data processing system 200 includescommunications fabric 202, which provides communications betweenprocessor unit 204, memory 206, persistent storage 208, communicationsunit 210, input/output (I/O) unit 212, and display 214.

Processor unit 204 serves to execute instructions for software that maybe loaded into memory 206. Processor unit 204 may be a set of one ormore processors or may be a multi-processor core, depending on theparticular implementation. Further, processor unit 204 may beimplemented using one or more heterogeneous processor systems in which amain processor is present with secondary processors on a single chip. Asanother illustrative example, processor unit 204 may be a symmetricmulti-processor system containing multiple processors of the same type.

Memory 206, in these examples, may be, for example, a random accessmemory or any other suitable volatile or non-volatile storage device.Persistent storage 208 may take various forms depending on theparticular implementation. For example, persistent storage 208 maycontain one or more components or devices. For example, persistentstorage 208 may be a hard drive, a flash memory, a rewritable opticaldisk, a rewritable magnetic tape, or some combination of the above. Themedia used by persistent storage 208 also may be removable. For example,a removable hard drive may be used for persistent storage 208.

Communications unit 210, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 210 is a network interface card. Communications unit210 may provide communications through the use of either or bothphysical and wireless communications links.

Input/output unit 212 allows for input and output of data with otherdevices that may be connected to data processing system 200. Forexample, input/output unit 212 may provide a connection for user inputthrough a keyboard and mouse. Further, input/output unit 212 may sendoutput to a printer. Display 214 provides a mechanism to displayinformation to a user.

Instructions for the operating system and applications or programs arelocated on persistent storage 208. These instructions may be loaded intomemory 206 for execution by processor unit 204. The processes of thedifferent embodiments may be performed by processor unit 204 usingcomputer implemented instructions, which may be located in a memory,such as memory 206. These instructions are referred to as program code,computer usable program code, or computer readable program code that maybe read and executed by a processor in processor unit 204. The programcode in the different embodiments may be embodied on different physicalor tangible computer readable media, such as memory 206 or persistentstorage 208.

Program code 216 is located in a functional form on computer readablemedia 218 and may be loaded onto or transferred to data processingsystem 200 for execution by processor unit 204. Program code 216 andcomputer readable media 218 form computer program product 220 in theseexamples. In one example, computer readable media 218 may be in atangible form such as, for example, an optical or magnetic disc that isinserted or placed into a drive or other device that is part ofpersistent storage 208 for transfer onto a storage device, such as ahard drive that is part of persistent storage 208.

In a tangible form, computer readable media 218 also may take the formof a persistent storage, such as a hard drive or a flash memory, that isconnected to data processing system 200. The tangible form of computerreadable media 218 is also referred to as computer recordable storagemedia.

Alternatively, program code 216 may be transferred to data processingsystem 200 from computer readable media 218 through a communicationslink to communications unit 210 and/or through a connection toinput/output unit 212. The communications link and/or the connection maybe physical or wireless in the illustrative examples. The computerreadable media also may take the form of non-tangible media, such ascommunications links or wireless transmissions, containing the programcode.

The different components illustrated for data processing system 200 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to or in place of those illustrated for dataprocessing system 200.

Other components shown in FIG. 2 can be varied from the illustrativeexamples shown. The different embodiments may be implemented using anyhardware device or system capable of executing program code. As oneexample, the data processing system may include organic componentsintegrated with inorganic components and/or may be comprised entirely oforganic components excluding a human being. For example, a storagedevice may be comprised of an organic semiconductor.

As another example, a storage device in data processing system 200 isany hardware apparatus that may store data. Memory 206, persistentstorage 208, and computer readable media 218 are examples of storagedevices in a tangible form. In yet another example, a bus system may beused to implement communications fabric 202 and may be comprised of oneor more buses, such as a system bus or an input/output bus. Of course,the bus system may be implemented using any suitable type ofarchitecture that provides for a transfer of data between differentcomponents or devices attached to the bus system.

Additionally, a communications unit may include one or more devices usedto transmit and receive data, such as a modem or a network adapter.Further, a memory may be, for example, memory 206 or a cache such asfound in an interface and memory controller hub that may be present incommunications fabric 202.

The different advantageous embodiments recognize that currently, flightdeck concepts may be custom built and disposed of after they are nolonger needed. The different advantageous embodiments recognize that anumber of different solutions may be used to avoid the expenses ofbuilding flight deck designs and creating programs for simulations. Forexample, training for flight crews may be performed using paperexercises with limited training software. Currently, the differentadvantageous embodiments recognize that non-functioning mockups andgraphics may be used to demonstrate new features to prospective newcustomers.

The different advantageous embodiments recognize that evaluating newflight deck designs may be difficult to perform without a physicalmodel. Physical models, however, take time and expense to create.Further, the different advantageous embodiments also recognize thattraining crews in the layouts and functions of new aircraft flight deckstypically require expensive simulators.

The different advantageous embodiments also recognize that cheapersimulators may be used. The advantageous embodiments recognize, however,that these designs may not provide the realism needed for propertraining. Further, the creation of software simulations are usuallyavailable late in aircraft production and testing processes. This typeof ability also may cause delays in training flight crew.

Also, the different advantageous embodiments recognize that new flightdeck features may be hard to demonstrate to prospective customers withcurrently available physical mockups. These types of designs do notprovide a capability to convey a feel for how the systems look and work.

Thus, the different advantageous embodiments provide a method,apparatus, and computer program code for presenting a flight deck. Inone advantageous embodiment, a model of the flight deck having aplurality of panels in which each panel has a location within the flightdeck is identified. Aircraft data is obtained. A display for each of theplurality of panels is generated to form a plurality of displays. Theflight deck is then presented. The plurality of displays is displayedwithin the plurality of locations for the plurality of flight panelswithin the presentation of the flight deck.

In other advantageous embodiments, a number of controls may be displayedwithin the flight deck being presented in which the number of controlsis capable of being manipulated by user input applied to the number ofcontrols. As used herein, a number of items refers to one or more items.For example, a number of controls is one or more controls. New aircraftdata may be generated from the user input. The plurality of flightdisplays may be modified based on the new aircraft data. Thismodification may be for a number of the plurality of displays.

With reference now to FIG. 3, a diagram of a virtual flight deckenvironment is depicted in accordance with an advantageous embodiment.In this example, virtual flight deck environment 300 may be implementedusing one or more data processing systems such as, for example, dataprocessing system 200 in FIG. 2. Virtual flight deck environment 300includes display application 302, display device 304, model 306, datasource 308, and input device 310.

Model 306 is a model of a flight deck. Model 306 may take various forms.For example, without limitation, model 306 may be a computer aideddesign model. The computer aided design model may be created using avariety of different types of computer aided design programs. Forexample, without limitation, computer aided design three-dimensionalinteractive application (CATIA) V5 is an example of a computer aideddesign application that may be used to create a three-dimensional modelof a flight deck for use to implement model 306. CATIA V5 is availablefrom Dassault Systemes. Of course, any type of computer aided designprogram for creating a three-dimensional model of a flight deck may beused for model 306 in these examples.

Data source 308 is a source of aircraft data 312. Aircraft data 312provides information about an aircraft during different phases offlight. This information may include, for example, without limitation,speed, total pressure, dynamic pressure, attitude, and other suitableaircraft data. Data source 308 may have various sources for aircraftdata 312. These sources may include, for example, simulation 314,recorded flight data 316, real time flight data 318, and other suitablesources of aircraft data 312.

Display application 302 uses model 306 and data source 308 to generatevirtual flight deck 320. In this example, virtual flight deck 320includes flight deck structure 322 and panels 324. Flight deck structure322 is a view of the physical components in the flight deck. Displayapplication 302 combines aircraft data 312 from data source 308 withmodel 306 to generate virtual flight deck 320 for presentation ondisplay device 304. With the use of aircraft data 312, displayapplication 302 may generate realistic displays for panels 324.

Panels 324 are displays that may be generated from aircraft data 312.These panels include, for example, without limitation, instrumentdisplays and/or other aircraft displays within flight deck structure322. Flight deck structure 322 has a number of locations for panels 324.These locations may be defined in model 306. The particular panels maybe associated with the locations defined in model 306 through userinput, files, or other information.

In some implementations, model 306 may identify particular panels withinpanels 324 for locations in flight deck structure 322. These panels maybe for displays such as a primary flight display, a navigation display,a flight management and control unit display, and other suitableinstrument displays within the flight deck. Further, panels 324 may alsoinclude displays for windows within the cockpit. The panels may changeas the simulation of the aircraft changes with respect to the aircraft'slocation, orientation, state information, and other information aboutthe aircraft changes. The panel changes may be initiated through userinput to data source 308.

The illustration of virtual flight deck environment 300 in FIG. 3 is notmeant to imply physical or architectural limitations to the manner inwhich virtual flight deck environment 300 may be implemented. In someembodiments, other components may be used in addition to and/or in placeof the ones illustrated. For example, in some advantageous embodiments,display application 302 may be a number of different programs operatingto generate virtual flight deck 320. In other advantageous embodiments,multiple modules, programs, or other software components may be presentto form display application 302 to generate virtual flight deck 320.

In yet other advantageous embodiments, additional models in addition tomodel 306 may be present for other flight deck designs. Further, thedifferent components illustrated may be located on a single dataprocessing system or distributed across multiple data processingsystems. For example, display application 302 may be located on onecomputer, while model 306 may be located on another computer. Also,display device 304 may take a number of different forms.

For example, display device 304 may be a liquid crystal display, anorganic light emitting diode display, a projection device, athree-dimensional display, or some other suitable display device.Display device 304 may be selected to have a high enough resolution toprovide a realistic presentation of the flight deck. For example, thedisplay device may generate a display that is 1920×1080 in pixels orgreater. Of course, the greatest resolution possible is desired toprovide the most realistic views. As yet another example, aircraft dataalso may be stored in a spreadsheet or other suitable format.

With reference now to FIG. 4, a diagram illustrating a virtual flightdeck is depicted in accordance with an advantageous embodiment. Virtualflight deck 400 is an example of one implementation of virtual flightdeck 320 that may be generated using display application 302 in FIG. 3.Virtual flight deck 400 may be generated in a form to provide highamounts of detail. This amount of detail may be limited only by thecapability of the video generation system and/or display device used topresent virtual flight deck 400. Virtual flight deck 400 includes flightdeck structure 402, panels 404, and controls 406.

Flight deck structure 402 is a presentation of the physical componentswithin the virtual flight deck. These components may include, forexample, without limitation, a floor, a ceiling, walls, chairs, or othersuitable components.

Panels 404 are displays simulating information that may be generatedfrom aircraft data. The locations of panels 404 in flight deck structure402 may be identified by a model of the flight deck, user input, or someother suitable source of information. In these examples, panels 404 maypresent dynamic information in response to changing aircraft data. Thisdynamic presentation of information within panels 404 may increase therealism of virtual flight deck 400. Panels 404 may include, for example,aircraft displays 408, windows 410, and/or some other suitable display.

Aircraft displays 408 are examples of different displays that may bepresented within the flight deck. These displays include, for example,without limitation, a primary flight display, a multi-function display,a navigation display, a heads up display, and other suitable displays.Windows 410 provide a display of what an operator would see from windowslocated within virtual flight deck 400 during operation of the aircraft.

In some advantageous embodiments, a panel within panels 404 may overlapanother panel. For example, one panel in panels 404 may provide adisplay of the environment outside of the flight deck, while anotherpanel within panels 404 may provide a heads up display, which is seenoverlaid on the view seen outside of the aircraft.

Panels 404 may be presented within locations 412 in flight deckstructure 402. Locations 412 in flight deck structure 402 may be definedwith respect to space and orientation. Particular panels of panels 404,however, may need to be assigned to locations 412. The association oflocations 412 with panels 404 may be designated by a user input, a file,information from a model of the virtual flight deck, and/or othersuitable sources. When virtual flight deck 400 is presented, panels 404are displayed within locations 412 in flight deck structure 402 in amanner that provides a realistic view of what a pilot or other operatorwould see within the flight deck modeled by virtual flight deck 400.

Controls 406 also may be presented within various locations withinlocations 412. Controls 406 may be manipulated through user input.Controls 406 provide a capability to provide user input to change thedisplay within panels 404. For example, controls 406 may include aflight column, a control stick, a switch, a knob, and/or other controlswhich a user may operate through various user inputs to change theoperation of the aircraft.

In another example, if a user changes the orientation or attitude of anaircraft, panels 404 may change to reflect this change in positionorientation. For example, a panel presenting a display of theenvironment outside of virtual flight deck 400 may change the view thatis seen by the user. A panel showing altitude or attitude informationalso may change to show the change made in response to the user input.

The user input may take various forms including a gesture recognitiondevice, a mouse, a joystick, an eye pointing device, or some othersuitable user input device. A gesture recognition device may interprethuman gestures such as hand movements to generate user input. An eyepointing device may measure movement of the user's eyeballs to generateuser input. This user input may be used to generate changes if asimulation is a source of aircraft data.

The illustration of virtual flight deck 400 in FIG. 4 is not meant toimply physical or architectural limitations to the manner in whichdifferent virtual flight decks may be implemented. Depending on theparticular implementation, some virtual flight decks may include othercomponents in addition to or in place of the ones illustrated. Forexample, in some advantageous embodiments, controls 406 may beconsidered a type of panel within panels 404. In yet other advantageousembodiments, only a single window may be present within windows 410, orno windows may be present.

With reference now to FIG. 5, a diagram illustrating an example of amodel is depicted in accordance with an advantageous embodiment. Model500 is an example of one manner in which model 306 in FIG. 3 may beimplemented. Model 500 may include flight deck design 502, display paneldesign 504, and controls 506. Flight deck design 502 may be a computeraided design model of the structure of the flight deck. Display paneldesign 504 may contain information about the displays that are presentwithin the flight deck. For example, display panel design 504 mayidentify a panel as being a navigation display and provide informationsuch as, for example, size, location, orientation, and other suitableinformation about the display.

Controls 506 may define interactive controls on the control panel. Theseinteractive controls may be used by the different advantageousembodiments to provide the capability for users to generate input intothe virtual flight deck.

In some advantageous embodiments, model 500 also may include digitalterrain 508 and airport model 510. Digital terrain 508 and airport model510 may be used to generate panels for use in presenting displays thatmay be seen outside the window of a flight deck.

The illustration of model 500 in FIG. 5 is not meant to implyarchitectural limitations to the manner in which model 500 may beimplemented. In other advantageous embodiments, model 500 may includeother information in addition to the different components illustratedfor model 500. For example, model 500 also may include a computer aideddesign model or other information used to generate a display of a pilotor other flight crew member. In other advantageous embodiments, airportmodel 510 may be unnecessary.

With reference now to FIG. 6, a diagram illustrating a displayapplication is depicted in accordance with an advantageous embodiment.Display application 600 is an example of one implementation of displayapplication 302 in FIG. 3. In this example, display application 600includes virtual flight deck generator 602, panel display unit 604, andcontrol unit 606.

Panel display unit 604 may generate the various displays for panels.These displays include those for windows and instruments located withinthe virtual flight deck. Panel display unit 604 may generate panels forwindows and instrument displays within the virtual flight deck. In thisillustrative example, panel display unit 604 may include window displaysystem 608 and instrument display system 610. Each of these systems maycontain one or more programs for generating displays for panels.

In this illustrative example, window display system 608 generates panelsthat simulate the display of views from one or more windows in theflight deck. These panels may be generated from aircraft data as well asimage or computer aided design (CAD) data describing terrain, airports,and other suitable objects that may be seen from a flight deck.

Instrument display system 610 includes pilot display program 612, pilotdisplay program 614, and instrument display program 616. In thisexample, pilot display program 612 and pilot display program 614 eachgenerate a display for one panel in the flight deck. A panel for aninstrument display within the flight deck corresponds to a particulardisplay such as, for example, a multi-function display, a primary flightdisplay, a navigation display, or some other suitable display ofinstruments or data within the flight deck. Instrument display program616 generates a display for instruments within the flight deck. Ofcourse, depending on the particular implementation, a separate displayprogram may be present for each instrument or display within the flightdeck.

In some advantageous embodiments, pilot display program 612 and pilotdisplay program 614 may be programs that generate video data. In otheradvantageous embodiments, these pilot display programs may take the formof files such as, for example, a slideshow file, a webpage, or othersuitable image.

In this manner, the different advantageous embodiments provide acapability to quickly change the view of different flight deck designswithout coding and/or mockups. The panels used in one presentation of aflight deck may be used with another flight deck by switching the modeland identifying locations for the panels in the new flight deck. Forexample, a panel for navigation display in one flight deck may be usedin another flight deck presentation. No new code is needed. The panelmay be resized, changed in location, and/or changed in orientationwithin the new flight deck. The process to create the navigation displaydoes not need to be recoded.

The illustration of display application 600 is not meant to implyarchitectural limitations to the manner in which display applicationsmay be implemented. In other advantageous embodiments, displayapplication 600 may include other components in addition to or in placeof the ones illustrated. For example, in some advantageous embodiments,only a single pilot display program may be present. In yet otheradvantageous embodiments, multiple instrument display programs may bepresent. Further, other types of display programs also may be generateddepending on the particular implementation. For example, in someadvantageous embodiments, a display program may be present to simulateor generate a pilot within the flight deck.

With reference now to FIG. 7, a diagram of a virtual flight deckenvironment is depicted in accordance with an advantageous embodiment.Virtual flight deck environment 700 is an example of one manner in whichvirtual flight deck environment 300 in FIG. 3 may be implemented.

In this illustrative example, virtual flight deck environment 700includes computer 702, computer 704, and computer 706. Further, virtualflight deck environment 700 also includes multichannel video compositor708 and display device 710. Network 712 in virtual flight deckenvironment 700 provides communications between computers 702, 704, and706.

In these examples, computer 706 is a source of aircraft data. Thesesources may include, for example, without limitation, flight simulationprogram 714, recorded flight data 716, and real time flight data 718.

When computer 706 executes flight simulation program 714, flightsimulation program 714 generates aircraft data 720, which is sent overnetwork 712 to computers 704 and 702. Aircraft data 720 may include, forexample, without limitation, aircraft position, orientation, state data,and/or other information that may be used to generate panels fordisplay. In these examples, state data may include, for example,airspeed, altitude, pitch, bank, heading, autopilot mode, descent rate,engine revolutions per minute, engine temperature, estimated time ofarrival at a way point, and/or other suitable data.

Further, computer 706 may contain recorded flight data 716. Recordedflight data 716 may be sent as aircraft data 720. When real time flightdata 718 is used, computer 706 may be a computer receiving real timeflight data 718 from an aircraft or may be a computer within an aircraftgenerating real time flight data 718 to form aircraft data 720.

In this example, computer 704 receives aircraft data 720 for use byinstrument display program 722. Instrument display program 722 maygenerate video data 724 and video data 726 using aircraft data 720.These streams of video data are sent to multichannel video compositor708. This component puts the separate video streams for the differentdisplays into a single video stream in the form of video data 728.

Video data 728 is sent to computer 702 and received by video dataconverter 729 for use by virtual flight deck generator 730 to generatevirtual flight deck 732 for presentation on display device 710. A MatroxVIO frame grabber card, which is available from Matrox ElectronicSystems, LTD, is one example of video data converter 729 that may beused in computer 702.

Pilot display program 734, pilot display program 736, and pilot displayprogram 738 execute on computer 702 to generate screens that may becaptured. These components generate screen capture video data 740, 742,and 744 for use by virtual flight deck generator 730. Instrument displayprogram 722, pilot display program 734, pilot display program 736, andpilot display program 738 may generate video and/or images for use inpanels for use in virtual flight deck 732. In some advantageousembodiments, some of these programs may take the form of a file withslides, images, or video. In other advantageous embodiments, one or moreof these programs may generate video and/or images from aircraft data720.

Thus, the different advantageous embodiments may use various video datatechniques, such as video frame grabbing, screen capture, or othersuitable techniques to create displays for panels in virtual flight deck732. Graphics filters or shaders may be used in manipulating thesedisplays for use. These techniques and other suitable techniques allowfor adding displays to virtual flight deck 732 from many sources. Forexample, the displays may be from existing displays developed for othersimulations. These displays may be resized, reoriented, and manipulatedin other suitable ways for use in virtual flight deck 732.

Further, virtual flight deck generator 730 also receives model 746. Inthis example, model 746 represents three-dimensional model inputs. Themodel may be a model of the aircraft as well as terrain that may bepresented. Virtual flight deck generator 730 converts screen capturevideo data 740, 742 and 744 into textures that may be used to createdynamic pilot displays for presentation on the panels for virtual flightdeck 732. Further, video data 728 may be processed to identifyinstrument displays for presentation within panels for virtual flightdeck 732.

Virtual flight deck 732 may be presented on display device 710. In theseexamples, computer 702 may have a three-dimensional video card connectedto display device 710. A Nvidia GeForce 8800 Ultra is an example of athree-dimensional video card that may be used. This video card isavailable from Nvidia Corporation. Display device 710 may take variousforms. For example, display device 710 may be a high-definitionprojector or a liquid crystal display panel.

By generating virtual flight deck 732 using model 746 and aircraft data720, new designs for flight decks may be quickly examined, tested,and/or reviewed with much less time and expense as compared to currentlyused systems. A new design may be reviewed by changing model 746 to amodel for another new design.

With reference now to FIG. 8, a diagram illustrating assignment ofpanels in a virtual flight deck is depicted in accordance with anadvantageous embodiment. In this example, virtual flight deck 800contains panels 802 for instrument displays. These panels may be filledfrom displays generated by the display application according to anadvantageous embodiment. For example, display 804 contains a number ofdifferent displays.

Section 806 and section 808 in display 804 may be mapped to location 810and location 812 in virtual flight deck 800. Each of these sections is apanel that may be displayed in a location within virtual flight deck 400in FIG. 4. As another example, display 814 is a panel generated fromscreen capture video data. Display 814 may be displayed in location 816in virtual flight deck 800. In the different advantageous embodiments,any window or pixel region may be assigned to a particular location,orientation, and/or scale during presentation of virtual flight deck800.

With reference now to FIG. 9, a diagram illustrating a user interfacefor assigning panels to locations in a flight deck is depicted inaccordance with an advantageous embodiment. In this example, userinterface 900 is an example of a user interface that may be used toassign panels to locations within a virtual flight deck. Window 902illustrates positions, orientations, and scales for different panels.

Within user interface 900, display positions 904 may indicate particulardisplay positions as named by common flight deck conventions such as,for example, without limitation, Captain Outboard (COB), Captain Inboard(CIB), First Officer Inboard (FIB), First Officer Outboard (FOB), andLower Control Display Unit (LD). These display positions are thepotential locations at which different panels may be assigned.

Each drop-down menu within menus 906 provides a complete menu of allpossible choices of pilot display programs for each particular displayposition. The user may select any of the pilot display programsavailable for a particular display position. For example, as seen inuser interface 900 for the display position of First Officer Outboard(FOB), the user may select a pilot display program such as, for example,without limitation, HUD Test Config a01, Primary Flight Display (COB)Ver c03, Research NAV Display Ver j06, FMC CDU Display Config a06, orsome other available pilot display program. In this manner, the user mayselect any of a number of combinations of pilot display programs fordisplay positions.

Further, the user may select whether the display within a particulardisplay position is displayed as a screenshot by selecting the“Screenshot” box from screenshot boxes 908 associated with theparticular display position. Toggle buttons 910 allow the user to selectwhether the displays within the particular display positions areconfigured for performance or for quality.

Auto Detect Standard Configuration button 915 allows the user to selectan auto detect standard configuration option that provides for automaticselection of a standard configuration for the display positions. Thisoption gives the user the ability to assign panels to the displaypositions according to a standard use without having to manually selectany of the configuration options presented in user interface 900.

Clear all button 912 allows the user to clear all configuration settingswithin user interface 900 so the user may start over, if necessary. Inaddition, clear buttons 914 allow the user to clear individual settings,such as the pilot display program selection, for a particular displayposition.

Window 902 allows the user to either type in position coordinates orread position coordinates from a file. Coordinates 916 indicate athree-dimensional position for the different display positions using (x,y, z) coordinates from the center of gravity of the aircraft. In thisillustrative example, the display position Captain Outboard (COB) hasposition (0.1, 0.2, 0.3). Orientations 918 indicate the orientation forthe different display positions by describing pitch, bank, and headingwith reference to the nose of the aircraft. In this illustrativeexample, the orientation of the display position Captain Inboard (CIB)has a pitch of 0, a bank of 5, and a heading of 0 with reference to thenose of the aircraft.

Scale factors 920 indicate the scales for the different displays withinthe display positions. The display position First Officer Inboard (FIB)has a selected scale factor of 5.3. Thus, with user interface 900 andwindow 902, a user may assign panels to different locations within avirtual flight deck and may select the position, orientation, and scaleof the display.

With reference now to FIG. 10, a flowchart of a process for presenting avirtual flight deck is depicted in accordance with an advantageousembodiment. The process illustrated in FIG. 10 may be implemented in avirtual flight deck environment such as virtual flight deck environment300 in FIG. 3. In particular, this process may be implemented usingdisplay application 302 in FIG. 3.

The process begins by identifying a model of the flight deck having anumber of locations for a number of displays (operation 1000). Theprocess then obtains aircraft data (operation 1002). This aircraft datamay be obtained from a number of different sources such as, for example,a flight simulation program, recorded flight data, real time flightdata, and other suitable sources of aircraft data. The process thengenerates a number of panels using the aircraft data (operation 1004).The process then generates a display of the flight deck containing thenumber of panels in the number of locations to form a presentation ofthe flight deck (operation 1006), with the process terminatingthereafter.

With reference now to FIG. 11, a flowchart of a process for generating avirtual flight deck is depicted in accordance with an advantageousembodiment. The process illustrated in FIG. 11 may be implemented usinga virtual flight deck environment, such as virtual flight deckenvironment 300 in FIG. 3. In particular, the process may be implementedin display application 302 in virtual flight deck environment 300 inFIG. 3.

The process begins by identifying a model for the virtual flight deck(operation 1100). The process then loads the data for the model(operation 1102). The model may include a number of different computeraided design files for the flight deck. The process then generates aflight deck from the data for the model (operation 1104). The processthen obtains aircraft data (operation 1106).

Operation 1106 is used to insure that the aircraft is positionedcorrectly in three-dimensional space and that all of the differentpanels have realistic data. This data may include an identification ofthe altitude, airspeed, pitch, bank, heading, engine performance,latitude, longitude, and other suitable data. This data may be gatheredfrom a source of aircraft data.

The process then generates panels from the obtained aircraft data(operation 1108). These panels include panels for the instruments in theflight deck as well as panels to display views outside of the windows ofthe flight deck. The process then identifies panel locations (operation1110). The process then identifies controls for the flight deck(operation 1112).

These controls may be, for example, a control column, a joystick, aswitch, and/or other controls that may be present in the flight deck.These controls are identified as controls that may be manipulated byuser input during the presentation of the flight deck. In some cases,only a portion of the controls may be identified for this type of userinput. The locations of the controls are then identified (operation1114).

The process displays the flight deck with the panels and controls in theidentified locations (operation 1116). The display of the flight deckmay involve displaying the different components on the display device.The process then determines whether user input has been received to anyof the identified controls (operation 1118). If user input is notreceived, the process returns to operation 1106 to receive additionalaircraft data to generate new panels for the virtual flight deck. Ifuser input is received, the process sends the user input to thesimulation program (operation 1120), with the process then returning tooperation 1106 as described above.

Thus, the different advantageous embodiments provide a computerimplemented method, apparatus, and computer program code for presentinga flight deck. In one or more of the different advantageous embodiments,a model of the flight deck is identified in which the model has panelsthat are associated with or have locations within the flight deck.Aircraft data is also obtained. A display for each of the panels isgenerated from the aircraft data to form displays. The flight deck isgenerated to form a presentation of the flight deck. The displays arethen placed into the locations for the presentation of the flight deck.The process then displays the presentation.

With these and other advantageous embodiments, different flight deckdesigns may be reviewed by changing the model. The simulation of theaircraft for which the flight deck is designed does not need to change.Only the model of the flight deck changes with the panels beingdisplayed in the appropriate locations within the particular model. Thepanels may be manipulated to properly fit in the desired location in thenew model.

With the capability to receive user input through controls, the virtualflight deck, in accordance with the different advantageous embodiments,may be used for training in addition to evaluation of the flight deckdesign. Also, with the dynamic presentation of data and the generationof the virtual flight deck from the model of the flight deck, customerevaluations may be made more realistic to potential customers. As aresult, one or more of these and other suitable advantages may beachieved.

The different advantageous embodiments can take the form of an entirelyhardware embodiment, an entirely software embodiment, or an embodimentcontaining both hardware and software elements. Some embodiments areimplemented in software, which includes, but is not limited to, formssuch as, for example, firmware, resident software, and microcode.

Furthermore, the different embodiments can take the form of a computerprogram product accessible from a computer-usable or computer-readablemedium providing program code for use by, or in connection with, acomputer or any device or system that executes instructions. For thepurposes of this disclosure, a computer-usable or computer-readablemedium can generally be any tangible apparatus that can contain, store,communicate, propagate, or transport the program for use by, or inconnection with, the instruction execution system, apparatus, or device.

The computer-usable or computer-readable medium can be, for example,without limitation, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, or a propagation medium. Non-limitingexamples of a computer-readable medium include a semiconductor or solidstate memory, magnetic tape, a removable computer diskette, a randomaccess memory (RAM), a read-only memory (ROM), a rigid magnetic disk,and an optical disk. Optical disks may include compact disk-read onlymemory (CD-ROM), compact disk-read/write (CD-R/W), and DVD.

Further, a computer-usable or computer-readable medium may contain orstore a computer-readable or computer-usable program code such that whenthe computer-readable or computer-usable program code is executed on acomputer, the execution of this computer-readable or computer-usableprogram code causes the computer to transmit another computer-readableor computer-usable program code over a communications link. Thiscommunications link may use a medium that is, for example, withoutlimitation, physical or wireless.

A data processing system suitable for storing and/or executingcomputer-readable or computer-usable program code will include one ormore processors coupled directly or indirectly to memory elementsthrough a communications fabric, such as a system bus. The memoryelements may include local memory employed during actual execution ofthe program code, bulk storage, and cache memories which providetemporary storage of at least some computer-readable or computer-usableprogram code to reduce the number of times code may be retrieved frombulk storage during execution of the code.

Input/output or I/O devices can be coupled to the system either directlyor through intervening I/O controllers. These devices may include, forexample, without limitation, keyboards, touch screen displays, andpointing devices. Different communications adapters may also be coupledto the system to enable the data processing system to become coupled toother data processing systems or remote printers or storage devicesthrough intervening private or public networks. Non-limiting examplesare modems and network adapters and are just a few of the currentlyavailable types of communications adapters.

The description of the different advantageous embodiments has beenpresented for purposes of illustration and description, and is notintended to be exhaustive or limited to the embodiments in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art.

Although the different embodiments are directed towards simulations of aflight deck for aircraft, other advantageous embodiments may beimplemented for other vehicles or control areas. For example, thedifferent advantageous embodiments may be applied to other platforms,such as a mobile platform, a stationary platform, a land-basedstructure, an aquatic-based structure, a space-based structure, and/orsome other suitable object.

More specifically, the different advantageous embodiments may be appliedto, for example, without limitation, generating simulations for controlareas for a submarine, a bus, a personnel carrier, a tank, a train, anautomobile, a spacecraft, a space station, a satellite, a surface ship,a power plant, a dam, a manufacturing facility, a building, and/or someother suitable object.

Further, different advantageous embodiments may provide differentadvantages as compared to other advantageous embodiments. The embodimentor embodiments selected are chosen and described in order to bestexplain the principles of the embodiments, the practical application,and to enable others of ordinary skill in the art to understand thedisclosure for various embodiments with various modifications as aresuited to the particular use contemplated.

What is claimed is:
 1. A method for evaluating a configuration of aflight deck design, the method comprising: a physical processoridentifying a model of a flight deck, the model comprising: a computeraided design model of a structure of the flight deck, a display paneldesign, and a number of locations corresponding to a number of displaypanels on the structure of the flight deck; such that each displaypanel, in the number of display panels, corresponds to a location in thenumber of locations, the display panel design configured to receiveinputs for changing a particular location corresponding to a particulardisplay panel within the model of the flight deck, as well as anorientation and a scale of the particular display panel; receiving, froma user interface, a selection for: a display preference betweenperformance and quality; evaluating the configuration before creating aprototype of and a simulator using the flight deck design the prototypecomprising at least one of: wood, and core; identifying each location inthe number of locations by a 3-D coordinate from a center of gravity ofan aircraft comprising the flight deck; a panel, in the number ofdisplay panels, comprising a window display system and an instrumentdisplay system; the physical processor obtaining aircraft datacomprising aircraft state data; the physical processor generating videodata from the aircraft data; processing the video data and providingscreen capture video data to display panels in the structure; thephysical processor generating a display of the structure and the numberof display panels of the flight deck responding to inputs from theaircraft data and an input device; and evaluating the configuration ofthe flight deck design via evaluating changes, responsive to inputsreceived from the input device, in the display of the structure and thenumber of display panels of the flight deck.
 2. The method of claim 1further comprising: displaying a number of controls within the flightdeck communicating with an input device for controlling the number ofcontrols; the physical processor generating new aircraft data responsiveto receiving an input from the input device; and the physical processormodifying the number of display panels based on the new aircraft data.3. The method of claim 2, wherein the step of generating the video datafrom the aircraft data comprises: the physical processor sending inputsreceived from the input device to a simulation program; and the physicalprocessor receiving the new aircraft data from the simulation program.4. A method for evaluating a configuration of a flight deck design, themethod comprising: a physical processor identifying a model of a flightdeck, the model comprising: a computer aided design model of a structureof the flight deck, a display panel design, and a number of locationscorresponding to a number of display panels on the structure of theflight deck; such that each display panel, in the number of displaypanels, corresponds to a location in the number of locations, thedisplay panel design configured to receive inputs for changing aparticular location corresponding to a particular display panel withinthe model of the flight deck, as well as an orientation and a scale ofthe particular display panel; the physical processor obtaining aircraftdata from at least one of: a simulation program, recorded flight data,and real time flight data, the aircraft data comprising aircraft statedata; the physical processor generating video data from the aircraftdata; processing the video data and providing screen capture video datato display panels in the structure; the physical processor generating adisplay of the structure and the number of display panels of the flightdeck responding to inputs from the aircraft data and an input device;and evaluating the configuration of the flight deck design viaevaluating changes, responsive to inputs received from the input device,in the display of the structure and the number of display panels of theflight deck.
 5. The method of claim 4, further comprising the physicalprocessor identifying the model of the flight deck comprising: theflight deck design, the display panel design, a digital terrain, and thenumber of locations for the number of display panels.
 6. A method forevaluating a configuration of a flight deck design, the methodcomprising: a physical processor identifying a model of a flight deck,the model comprising: a computer aided design model of a structure ofthe flight deck, a display panel design, and a number of locationscorresponding to a number of display panels on the structure of theflight deck; such that each display panel, in the number of displaypanels, corresponds to a location in the number of locations, thedisplay panel design configured to receive inputs for changing aparticular location corresponding to a particular display panel withinthe model of the flight deck, as well as an orientation and a scale ofthe particular display panel; the physical processor obtaining aircraftdata comprising aircraft state data; the physical processor generatingvideo data from the aircraft data; processing the video data andproviding screen capture video data to display panels in the structure;the physical processor generating a display of the structure and thenumber of display panels of the flight deck responding to inputs fromthe aircraft data and an input device; evaluating the configuration ofthe flight deck design via evaluating changes, responsive to inputsreceived from the input device, in the display of the structure and thenumber of display panels of the flight deck; and testing and reviewingalternative flight deck designs by changing the model of the flightdeck.
 7. A data processing system configured to evaluate, prior to acreation a prototype of and a simulator for a flight deck design, suchthat: the flight deck design comprises a flight deck structure and anumber of panels located on the flight deck structure; the prototypecomprises the at least one of: wood, and core; at least one panel in thenumber of panels comprises a window display system and an instrumentdisplay system; and the data processing system comprises: a bus; acommunications unit connected to the bus; a storage device connected tothe bus, wherein the storage device includes program code; and aprocessor unit connected to the bus, the processor unit configured to:receive, from a user interface, a selection for: a display preferencebetween performance and quality; execute the program code to identify amodel of a flight deck that comprises: a flight deck design, a displaypanel design, and a number of locations on the flight deck structure forassigning a number of panels for displays that comprise at least one of:instruments and controls, and display a number of controls within theflight deck configured to: receive an input from an input device appliedto the number of controls; generate new aircraft data from the input;and modify a number of the number of panels based on the new aircraftdata; execute the program code to send the input to a simulationprogram; receive the new aircraft data from the simulation program;receive an input, from an input device, to change a location of a panel,in the number of panels, in the model, the location being defined by a3-D coordinate from a center of gravity of an aircraft that comprisesthe flight deck; obtain aircraft data; generate video data from theaircraft data; process the video data to provide instrument displays forpresentation within the panels for the flight deck; and generate adisplay of the flight deck that comprises the number of panels thatforms a tool for an evaluation of the input to change to the location ofthe panel in the model of the flight deck.
 8. A data processing systemconfigured to evaluate, prior to a creation a prototype of and asimulator for a flight deck design, the flight deck design thatcomprises a flight deck structure and a number of panels located on theflight deck structure, such that the data processing system comprises: abus; a communications unit connected to the bus; a storage deviceconnected to the bus, wherein the storage device includes program code;and a processor unit connected to the bus, the processor unit configuredto: execute the program code to: and identify a model of a flight deckthat comprises: a flight deck design, a display panel design, and anumber of locations on the flight deck structure for assigning a numberof panels for displays that comprise at least one of: instruments andcontrols; and test and to review the flight deck design responsive to achange of the model of the flight deck; receive an input, from an inputdevice, to change a location of a panel, in the number of panels, in themodel, the location being defined by a 3-D coordinate from a center ofgravity of an aircraft that comprises the flight deck; obtain aircraftdata; generate video data from the aircraft data; process the video datato provide instrument displays for presentation within the panels forthe flight deck; and generate a display of the flight deck thatcomprises the number of panels that forms a tool for an evaluation ofthe input to change to the location of the panel in the model of theflight deck.
 9. The data processing system of claim 8, furthercomprising the processor unit configured to execute the program code toidentify the model of the flight deck that comprises: the flight deckdesign, the display panel design, a digital terrain, and the number oflocations for the number of panels.
 10. A non-transitory computerrecordable storage medium that comprises a computer program productprogrammed to: evaluate a configuration of a flight deck; identify amodel of the flight deck that comprises: a flight deck design, a displaypanel design, and a number of locations, on a structure of the flightdeck, that comprise a number of panels that comprise displays, eachpanel in the number of panels associated respectively with a location inthe number of locations; receive an input, from an input device, tochange a location in the number of location for a panel in the number ofpanels; obtain aircraft data that comprises aircraft state data;generate a video data from the aircraft data, and process the video datato provide instrument displays for presentation within the panels forthe flight deck; generate a display of the flight deck that comprisesthe number of panels that forms a tool for an evaluation of the input tochange to the location of the panel in the model of the flight deck; andtest and review flight deck designs based upon a change of the model forthe flight deck.
 11. The non-transitory computer recordable storagemedium of claim 10, further comprising: the evaluation being aprerequisite to a prototype or simulator for the flight deck; and thenumber of panels comprise at least one panel that comprises a windowdisplay system and an instrument display system.
 12. The non-transitorycomputer recordable storage medium of claim 11 further comprisingprogram code, stored on the non-transitory computer recordable storagemedium, programmed to: receive, from a user interface, a selection for:a display preference between performance and quality; display a numberof controls within the flight deck configured for manipulation via aninput applied to the number of controls via an input device; generatenew aircraft data from the input; and modify a number of the number ofpanels based on the new aircraft data.
 13. The non-transitory computerrecordable storage medium of claim 12, further comprising program code,stored on the non-transitory computer recordable storage medium,programmed to: send the input to a simulation program; and receive thenew aircraft data from the simulation program.
 14. The non-transitorycomputer recordable storage medium of claim 10, further comprisingprogram code, stored on the non-transitory computer recordable storagemedium, programmed to obtain the aircraft data from at least one of: asimulation program, recorded flight data, and real time flight data. 15.The computer program product of claim 10, further comprising: thelocation defined by a 3-D coordinate from a center of gravity of anaircraft that comprises the flight deck; and program code, stored on thenon-transitory computer recordable storage medium, for identifying themodel of the flight deck having the flight deck design, the displaypanel design, a digital terrain, and the number of locations for thenumber of panels.